//
//  CLFileManage.m
//  FileSystemDemo
//
//  Created by 小草毋正 on 2018/1/9.
//  Copyright © 2018年 C-LOVE. All rights reserved.
//

#import "CLFileManage.h"





@implementation CLFileManage




+ (BOOL)moveAtPath:(NSString *)path toPath:(NSString *)toPath {
    NSFileManager *fileManager = [NSFileManager defaultManager];
    return [fileManager moveItemAtPath:path toPath:toPath error:nil];
}



+ (BOOL)deleteAtPath:(NSString *)path {
    NSFileManager *fileManager = [NSFileManager defaultManager];
    return [fileManager removeItemAtPath:path error:nil];
}



/**
 * @abstract 获取当前路径下的 CLFile 数组
 * @discussion 获取当前目录下的全部文件，并转化为CLFile数据模型(每个数据模型对应一个文件/文件夹)
 * @param filePath 文件路径
 * @param show 是否显示隐藏文件(我现在只知道.开头的问隐藏文件夹--后期再去论证了)
 * @result 返回CLFlie 数据模型数组
 */
+ (NSArray<CLFile *> *)clfilesForPath:(NSString *)filePath showHidden:(BOOL)show {
    NSFileManager *fileManager = [NSFileManager defaultManager];
    if([fileManager fileExistsAtPath:filePath] == NO){
        return nil;
    }
    /** 获取全部目录下文件名称(包括文件夹名称) */
    NSArray *subFileNames = [fileManager contentsOfDirectoryAtPath:filePath error:nil];
    if(!show){
        NSMutableArray *arrayM = [[NSMutableArray alloc] init];
        for (NSString *name in subFileNames) {
            if([name hasPrefix:@"."] == NO){
                [arrayM addObject:name];
            }
        }
        subFileNames = arrayM;
    }
    /** 把所有文件的路径进行格式化 */
    NSArray *filePaths = [filePath stringsByAppendingPaths:subFileNames];
    
    NSMutableArray<CLFile *> *arrayM = [[NSMutableArray alloc] init];
    for (NSString *filePath in filePaths) {
        CLFile *file = [[CLFile alloc] initWithFilePath:filePath];
        [arrayM addObject:file];
    }
    return arrayM;
}





@end





